package com.ruoyi.his.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;

import com.ruoyi.his.domain.HisNurse;
import com.ruoyi.his.domain.OdsDoctorAll;
import com.ruoyi.his.domain.OdsHospitalAll;
import com.ruoyi.his.domain.OdsHospitalData;
import com.ruoyi.system.domain.HisHospitalNation;
import org.apache.ibatis.annotations.Param;

/**
 * 国家机构Mapper接口
 * 
 * @author Alan
 * @date 2024-03-22
 */
public interface OdsHospitalAllMapper extends BaseMapper<OdsHospitalAll>
{
    List<OdsHospitalAll> selectHisHospitalNew(OdsHospitalAll odsHospitalAll);
    /**
     * 查询国家机构列表
     *
     * @param odsHospitalAll 国家机构
     * @return 国家机构集合
     */
    public List<OdsHospitalAll> selectByRegisterNumber(OdsHospitalAll odsHospitalAll);

    /**
     * 查询国家机构列表
     *
     * @param odsHospitalAll 国家机构
     * @return 国家机构集合
     */
    public List<OdsHospitalAll> selectByName(OdsHospitalAll odsHospitalAll);
    /**
     * 查询国家机构
     * 
     * @param uniqueCode 国家机构主键
     * @return 国家机构
     */
    public OdsHospitalAll selectOdsHospitalAllByUniqueCode(Integer uniqueCode);

    /**
     * 查询国家机构列表
     * 
     * @param odsHospitalAll 国家机构
     * @return 国家机构集合
     */
    public List<OdsHospitalAll> selectOdsHospitalAllList(OdsHospitalAll odsHospitalAll);

    /**
     * 查询
     *
     * @param odsHospitalAll 国家机构
     * @return 国家机构集合
     */
    public List<OdsHospitalAll> selectOdsHospitalAllAre(OdsHospitalAll odsHospitalAll);
    public List<OdsHospitalAll> selectOdsHospitalAllData(OdsHospitalAll odsHospitalAll);

    public List<OdsHospitalAll> selectOdsHospitalAllListByReg(String reg);

    public List<OdsHospitalAll> selectBySigAndHosIdList(@Param("signature") String signature, @Param("hospitalId") String hospitalId);

    /**
     * 新增国家机构
     * 
     * @param odsHospitalAll 国家机构
     * @return 结果
     */
    public int insertOdsHospitalAll(OdsHospitalAll odsHospitalAll);

    /**
     * 修改国家机构
     * 
     * @param odsHospitalAll 国家机构
     * @return 结果
     */
    public int updateOdsHospitalAll(@Param("item") OdsHospitalAll odsHospitalAll);

    public int updateByHid(OdsHospitalAll odsHospitalAll);

    public int updateByHname(OdsHospitalAll odsHospitalAll);

    /**
     * 删除国家机构
     * 
     * @param uniqueCode 国家机构主键
     * @return 结果
     */
    public int deleteOdsHospitalAllByUniqueCode(Integer uniqueCode);

    public int delByHid(String hospitalId);

    /**
     * 批量删除国家机构
     * 
     * @param uniqueCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOdsHospitalAllByUniqueCodes(Integer[] uniqueCodes);


    OdsHospitalAll selectBySigAndHosId(@Param("signature") String signature, @Param("hospitalId") String hospitalId);

    List<OdsHospitalData> selectByRegisterNumberList(List<String> registerNumbers);

    int updateOdsHospitalAllByReg(OdsHospitalAll odsHospitalAll);

    OdsHospitalAll selectRegisterNumber(String register_number);


    /**
     * 根据注册号查签名为空
     *
     * @return 结果
     */
    List<OdsHospitalAll>  selectBySignatureIsNull(String registerNumber);

    /**
     * 修改【请填写功能名称】
     *
     * @param signature 【签名】
     * @return 结果
     */
    public List<OdsHospitalAll> checkSameName(String signature);

    /**
     * 根据注册号查签名不为空
     *
     * @return 结果
     */
    OdsHospitalAll selectBySignatureIsNotNull(String registerNumber);
    /**
     * 根据主键更新签名和HospitalId
     *
     * @return 结果
     */
    int updateByUncode(OdsHospitalAll odsHospitalAll);

    List<OdsHospitalAll> selectListBySig(String signature);





    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListHid(List<OdsHospitalAll> list);

    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListRegisterNumber(List<OdsHospitalAll> list);

    /**
     * 根据批量更新
     *
     * @return 结果
     */
    public int updateOfListName(List<OdsHospitalAll> list);
    /**
     * 批量插入
     *
     * @param list 【请填写功能名称】
     * @return 结果
     */
    public int InsertOfList(List<OdsHospitalAll> list);

    /**
     * 删除重复的nurse_id只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByHid();

    /**
     * 删除重复的id_card只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByIdRNumber();

    /**
     * 删除重复的执业证号只保留最老的一条
     *
     * @return 结果
     */
    public int deleteKeepOneByName();

}
